home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1987 March
/
1987-03.d64
/
color craft
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
5KB
|
134 lines
10 iffl=0thenfl=1:load "color craft.obj",8,1
20 fl=2:poke56,32:clr:dimfp(2,9),bar(10),sc(9),mp(2,9)
30 poke2040,13:poke2042,253:poke2043,254:poke2044,255
40 dimco(9):co(1)=1:co(2)=7:co(3)=5:co(4)=6:co(5)=0:co(6)=2:co(7)=14
50 co(8)=10:co(9)=13
60 dims1(9),s2(9),s3(2),s4(2)
70 s1(1)=01:s2(1)=197:s1(2)=129:s2(2)=198:s1(3)=129:s2(3)=196
80 s1(4)=65:s2(4)=196:s1(5)=193:s2(5)=196:s1(6)=1:s2(6)=196
90 s1(7)=193:s2(7)=197:s1(8)=129:s2(8)=197:s1(9)=65:s2(9)=197
100 s3(1)=1:s4(1)=198:s3(2)=65:s4(2)=198:poke53242,63
110 co(0)=3:s1(0)=s1(1):s2(0)=s2(1)
120 v=53248:pokev+16,0:nr=1:pokev+29,0:pokev+23,0
130 poke53276,peek(53276)or(2^0)
140 bar(1)=1:bar(2)=2:bar(3)=4:bar(4)=14:bar(5)=5:bar(6)=6:bar(7)=7
150 bar(8)=10:bar(9)=11:bar(10)=13:poke53280,14
160 fori=1to9:sc(i)=co(i):next:poke2045,14:poke2046,15
170 poke53245,128:poke53246,3:poke53243,85:poke53244,201:sys50944
180 poke53245,192:poke53246,3:poke53243,149:poke53244,201:sys50944
190 pokev+16,96:pokev+10,43:pokev+12,43:pokev+11,59:pokev+13,82:
200 pokev+45,0:pokev+44,0:nh=0
210 base=8192:poke53272,peek(53272)or8
220 poke53265,peek(53265)or32:poke53270,peek(53270)or16:poke53281,3
230 poke251,0:poke252,32:poke253,64:poke254,33:poke49152,255:sys49153
240 poke251,64:poke252,33:poke253,64:poke254,63:poke49152,0:sys49153
250 poke251,0:poke252,4:poke253,232:poke254,7:poke49152,0:sys49153
260 poke251,0:poke252,216:poke253,231:poke254,219:poke49152,0:sys49153
270 cr=14:gosub1290
280 poke251,0:poke252,62:poke253,64:poke254,63:poke49152,255:sys49153
290 l=1:fori=0to9:forj=0to3:poke56256+i*4+j,bar(l):nextj:l=l+1:nexti
300 forby=8768to14848step320
310 ly=int(by-base)/8+1024:pokely,96
320 fori=0to7:pokeby+i,peek(by+i)or64:next:next
330 forby=14599to14853step8:pokeby,255
340 ly=int(by-base)/8+55296:pokely,6:next
350 forby=14598to14852step8:pokeby,255
360 ly=int(by-base)/8+55296:pokely,6:next
370 l=16191:fori=0to39:pokel-(i*8),170:next
380 fori=1to9:co(i)=sc(i):next
390 poke53245,64:poke53246,63:poke53243,193:poke53244,198:sys50944
400 pokev+41,0:pokev+42,0:pokev+43,0
410 poke53245,128:poke53246,63:poke53243,s3(1):poke53244,s4(1):sys50944
420 poke53245,192:poke53246,63:poke53243,s3(2):poke53244,s4(2):sys50944
430 pokev+6,30:pokev+7,220:pokev+8,70:pokev+9,220:pokev+21,120
440 gosub1040:poke49233,3
450 forsb=nhto9:pokev+16,96
460 ny=fp(2,sb):nx=fp(1,sb):ifnx<256then480
470 pokev+16,97:nx=nx-255
480 poke53285,co(sb)
490 poke53245,64:poke53246,3:poke53243,s1(sb):poke53244,s2(sb):sys50944
500 pokev,nx:pokev+1,ny:poke49189,0:sys49185
510 nextsb:nh=1:poke49233,0
520 fl=9
530 pokev+4,255:pokev+5,105:pokev+16,96
540 poke51207,61:poke51350,239:poke49189,2:poke251,4:poke252,208
550 pokev+21,peek(v+21)or4
560 sys51011
570 ifpeek(50978)<>0then560
580 fori=1to300:next
590 x=peek(v+4)+24:y=peek(v+5)+10:if(peek(v+16)and4)>0thenx=x+255
600 ify>240then870
610 ifx>255then680
620 ify<fp(2,7)-4then530
630 ifx<70thenpokev+21,0:fl=9:poke53280,14:goto220
640 ifx<fp(1,6)then1320
650 forsb=7to9:ifx<fp(1,sb)then730
660 next
670 sb=10:goto730
680 ifx<275then620
690 ify<100then1110
700 forsb=2to5:ify<fp(2,sb)then730
710 next
720 sb=10:ifx>fp(2,9)+25thensb=6
730 sb=sb-1:poke53245,64:poke53246,3:poke53243,s1(sb):poke53244,s2(sb):sys50944
740 ifsb=5then970
750 iffl=10thengosub900
760 pokev+1,fp(2,sb):nx=fp(1,sb):ifnx<256then780
770 pokev+16,peek(v+16)or1:nx=nx-255
780 pokev,nx:poke53285,co(sb)
790 pokev+21,(peek(v+21)and251)or1
800 poke49189,0:poke251,0:poke252,208:poke51207,0:poke51350,196
810 pokev+1,mp(2,sb):nx=mp(1,sb):pokev+16,peek(v+16)and254:ifnx<256then830
820 pokev+16,peek(v+16)or1:nx=nx-255
830 pokev,nx
840 sys51011
850 ifpeek(50978)<>0then840
860 poke49189,0:pokev+21,120:sys49185:goto530
870 fl=10:forl=2to10:ifx<(l-1)*32+24then890
880 next:l=11
890 l=l-1:ncolr=bar(l):poke53280,bar(l):cr=bar(l):gosub1290:goto530
900 co(sb)=ncolr:fl=9:poke49189,0:pokev+21,120
910 poke53280,14:cr=14:gosub1290
920 pokev+1,fp(2,sb):nx=fp(1,sb):ifnx<256then940
930 pokev+16,peek(v+16)or1:nx=nx-255
940 pokev,nx:poke53285,co(sb)
950 pokev+21,(peek(v+21)and251)or1
960 poke49189,0:sys49185:return
970 fl=9:poke53280,14:ncolr=0:cr=14:gosub1290:goto 760
980 nm$="":ii=0
990 geta$:ifa$=""then990
1000 ifa$=chr$(13)thenreturn
1010 ifa$=chr$(20)thenprintchr$(20);:ii=ii-1:nm$=left$(nm$,ii):goto990
1020 ifa$<chr$(48)ora$>chr$(90)then990
1030 ii=ii+1:nm$=nm$+a$:printa$;:goto990
1040 fp(1,0)=294:fp(1,1)=294:fp(1,2)=294:fp(1,3)=294:fp(1,4)=294:fp(1,5)=294
1050 fp(2,1)=110:fp(2,2)=140:fp(2,3)=165:fp(2,4)=190:fp(2,5)=218
1060 for i=6to9:fp(1,i)=65+(i-5)*45:fp(2,i)=220:next:fp(1,7)=fp(1,7)-5
1070 fp(1,8)=fp(1,8)-2
1080 fori=1to5:mp(1,i)=255:mp(2,i)=fp(2,i):next
1090 fori=6to9:mp(1,i)=fp(1,i):mp(2,i)=fp(2,i)-24:next
1100 mp(2,5)=fp(2,5)-24:return
1110 poke251,0:poke252,4:poke253,39:poke254,4:poke49152,32:sys49153
1120 cr=14:fl=9:poke53280,cr:gosub1290
1130 poke51729,0:open15,8,15:sys51419:ify<75then1190
1140 print"load file name :";:gosub980:sys51669:gosub1290
1150 open2,8,2,nm$:input#15,a$,b$,c$,c$:sys51419
1160 ifa$="00"thenprint"loading "nm$:fori=1to1000:next:sys51669:goto1180
1170 print" "b$:fori=1to3000:next:goto1230
1180 gosub1290:sys51937:poke14847,255:goto1250
1190 print"save file name: ";:gosub980:sys51669:nm$=nm$+",s,w":gosub1290
1200 open2,8,2,nm$:input#15,a$,b$,c$,c$:sys51419
1210 ifa$="00"thenprint" saving "nm$:goto1240
1220 print" "b$:fori=1to3000:next
1230 sys51669:gosub1310:gosub1290:p1$="@":goto520
1240 fori=1to2000:nexti:sys51669:gosub1290:sys51708
1250 gosub1310:p1$="@"
1260 ifpeek(51729)=0then520
1270 sys51419:print" bad disk access. code = "peek(51729)
1280 fori=1to3000:next:sys51669:gosub1290:goto520
1290 poke251,0:poke252,216:poke253,40:poke254,216:poke49152,cr:sys49153
1300 return
1310 sys65484:close2:close15:return
1320 poke56,160:clr:sys 64759
1330 end